Computers, in particular personal computers (PC), are configured with various hardware and software components. PC manufacturers are numerous, and the different PC configurations offered are even greater.
In some cases, a particular version of a hardware component may be used for different PC components. The behavior or performance of the particular hardware component may vary between various PC configurations, since particular PC configurations affect the hardware component differently. The hardware component may rely on a software driver (driver) that instructs the hardware component how to operate. Optimization of the hardware component within a particular PC configuration may be performed by providing a driver which factors how the hardware component operates within the particular PC configuration. Alternatively, hardware changes may be made to the hardware component.
An example of a hardware component is a graphics card that interacts with a PC display, PC operating system, and graphics software, where the graphics software may interact with a video adapter and a hard drive. When testing is performed on a graphics card, not only is the graphics card tested, but the various hardware and software components it interacts with are also tested.
To properly create drivers or provide hardware changes that optimize performance of the hardware component, testing is performed on the hardware component in the particular PC configuration. Typically, various editions of a driver and/or the hardware component are installed and tested for each particular PC configuration, and tests are run to determine optimal changes between driver editions and hardware component versions. In certain situations it is desirable to compare different hardware components with one another for a particular PC configuration or configurations. For example, a graphics card vendor may want to compare its graphics card with that of a competitor. In other cases, a PC manufacturer may desire to compare various graphics cards.
“Thin client” PCs lend themselves to testing using varying hardware configurations, since thin client PCs have limited software components. In particular, thin client PCs rely on a server computer to provide software applications. Therefore, the software configuration of a thin client PC remains consistent, while its hardware configuration may vary.
Various metrics may be used in testing. A particular metric is time. Tests are timed and compared to one another to determine improvements in how long a test is ran for different hardware components and/or drivers for a particular PC configuration.
A test application program that tests the hardware component may be installed on a particular PC configuration and run using a particular edition of the driver and/or version of the hardware component. This is referred to as “standalone” testing and a copy of the test application program is installed for each PC configuration. For multiple PC configurations, multiple copies of the test application program may be needed. In certain cases, a dedicated computer that includes the test application may perform testing for multiple computers. There may be a need to provide test specific interconnections to physically connect the dedicated computers to the multiple computers to create a test specific environment.
Test results from the testing are gathered and/or sent to a party that creates the driver. Changes to the driver and/or hardware component may be made that optimize performance for the particular hardware configuration. The new driver and/or hardware component is then sent to the PC manufacturer or integrator. The new driver and/or hardware component is installed. New tests are performed with the new driver and/or hardware component. The new test results may be sent back to the party creating the drivers. A new driver and/or hardware component may or may not be sent to the PC manufacturer or integrator.
Creating an optimal driver or hardware component for each PC configuration may take numerous iterations of testing, gathering tests, sending tests, and retesting. When testing is involved and consumes considerable time, such as the case for graphics testing, there may not be the luxury to perform numerous iterations of testing.
Oftentimes, PC manufacturers and hardware components rely on a compromised “generic” driver that is used for all PC configurations. However, this may be unacceptable for particular PC configurations in that the associated hardware component may be inoperative or its operation considerably degraded for particular PC configurations. Substituting a customized driver or set of drivers for the generic driver may allow the same hardware component to properly function in the particular PC configuration. However, creating such drivers requires iterations of testing and retesting.
It is therefore desirable to provide a method and system of testing such as graphics testing from a central resource such as a server computer on various remote client computers (e.g., thin client PCs) without the need to install test tool applications on the remote client computers, and determine test results at either the client PC or the central resource.